/****************************************************
文件：HeaderUI_o.cs
作者：UnitySir
邮箱：zouajck@foxmail.com
日期：2021/03/22 20:24:37
功能：Nothing
*****************************************************/

/**********************************
注意事项：
    1. uiCamera 的深度设置为3(比0大即可)保证UI能够显示
    2. UI 要设置为居中显示
**********************************/

using System;
using System.Collections;
using System.Collections.Generic;
using DSFramework;
using UnityEngine;

public class HeaderUI_o : MonoBehaviour
{
    [Header("一个主要的相机")] [SerializeField] private Camera _camera;
    [Header("需要显示UI的对象")] [SerializeField] GameObject _obj;
    [Header("需要显示的UI")] [SerializeField] RectTransform _ui;
    [Header("画布")] [SerializeField] private Transform _canvas;

    [Header("AB包的名称 和 资源名称")] [SerializeField]
    private string _abName;

    [SerializeField] private string _resName;

    private static int _count = 0; //计数(保证名称不唯一)

    private void Start()
    {
        if (_obj == null) _obj = gameObject;
        _ui = DSEntity.Resource.LoadRes<GameObject>(_abName, _resName).GetOrAddCmpt<RectTransform>();
        _ui.SetParent(_canvas);
        DSEntity.Mono.AddUpdate("HeaderUI" + _count++, OnUpdate);
    }

    void OnUpdate()
    {
        Vector2 screenPos = _camera.WorldToScreenPoint(_obj.transform.position);
        _ui.position = screenPos;
    }
}